using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DefLoader")]
	public class DefLoader : MonoClass
	{
		public bool m_loadedEntityDefs => method_2<bool>("m_loadedEntityDefs");

		public GameObject m_placeholderCardPrefab => method_3<GameObject>("m_placeholderCardPrefab");

		public bool m_isPlaying => method_2<bool>("m_isPlaying");

		public DefLoader(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DefLoader(IntPtr address)
			: this(address, "DefLoader")
		{
		}

		public static DefLoader Get()
		{
			return MonoClass.smethod_15<DefLoader>(TritonHs.MainAssemblyPath, "", "DefLoader", "Get", Array.Empty<object>());
		}

		public static AssetReference GetTextureQualityAsset(AssetReference assetRef, int quality)
		{
			return MonoClass.smethod_15<AssetReference>(TritonHs.MainAssemblyPath, "", "DefLoader", "GetTextureQualityAsset", new object[2] { assetRef, quality });
		}

		public void Initialize()
		{
			method_8("Initialize");
		}

		public void Clear()
		{
			method_8("Clear");
		}

		public bool HasDef(GameObject go)
		{
			return method_11<bool>("HasDef", new object[1] { go });
		}

		public void ClearEntityDefs()
		{
			method_8("ClearEntityDefs");
		}

		public EntityDef GetEntityDef(string cardId)
		{
			return method_15<EntityDef>("GetEntityDef", new Class276.Enum20[1] { Class276.Enum20.String }, new object[1] { cardId });
		}

		public EntityDef GetEntityDef(int dbId)
		{
			return method_15<EntityDef>("GetEntityDef", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { dbId });
		}

		public void LoadAllEntityDefs()
		{
			method_8("LoadAllEntityDefs");
		}

		public bool HasLoadedEntityDefs()
		{
			return method_11<bool>("HasLoadedEntityDefs", Array.Empty<object>());
		}

		public bool HasCardDef(GameObject go)
		{
			return method_11<bool>("HasCardDef", new object[1] { go });
		}

		public void ClearCardDef(string cardID)
		{
			method_8("ClearCardDef", cardID);
		}

		public void ClearCardDefs()
		{
			method_8("ClearCardDefs");
		}

		public CardDef GetCardDef(int dbId)
		{
			return method_15<CardDef>("GetCardDef", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { dbId });
		}

		public CardDef GetCardDef(string cardId, CardPortraitQuality quality)
		{
			return method_15<CardDef>("GetCardDef", new Class276.Enum20[2]
			{
				Class276.Enum20.String,
				Class276.Enum20.Class
			}, new object[2] { cardId, quality });
		}

		public GameObject LoadPlaceholderCardPrefab()
		{
			return method_14<GameObject>("LoadPlaceholderCardPrefab", Array.Empty<object>());
		}

		public void UpdateCardAssets(CardDef cardDef, CardPortraitQuality quality)
		{
			method_8("UpdateCardAssets", cardDef, quality);
		}

		public void WillReset()
		{
			method_8("WillReset");
		}

		public void OnSceneUnloaded(SceneMgr.Mode prevMode, PegasusScene prevScene, object userData)
		{
			method_8("OnSceneUnloaded", prevMode, prevScene, userData);
		}

		public FullDef GetFullDef(string cardId, CardPortraitQuality quality)
		{
			return method_14<FullDef>("GetFullDef", new object[2] { cardId, quality });
		}
	}
}
